//全局对象 https://www.cnblogs.com/dingshaohua/p/17318068.html
// const allGloablComponent: object = { SvgIcon, PageIndex }

import * as ElementPlusIconsVue from '@element-plus/icons-vue'
export default {
  install(app) {
    const allGloablComponent = import.meta.glob('./*/index.vue', { eager: true })
    // 第一种
    for (const [key, value] of Object.entries(allGloablComponent)) {
      // 拼接组件注册的 name
      const componentName = key.replace('./', '').split('/')[0]
      console.log(value.default)
      // 通过 defineAsyncComponent 异步导入指定路径下的组件
      app.component(componentName, defineAsyncComponent(value.default))
      for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
        app.component(key, component)
      }
    }
    // 第二种
    // for (const path in allGloablComponent) {
    //   const moduleName = path.match(/.*\/(.+).vue$/)[1]
    //   const moduleConent = allGloablComponent[path].default
    //   console.log(moduleName, defineAsyncComponent(moduleConent))
    //   app.component(moduleName, defineAsyncComponent(moduleConent))
    // }
    // 第三钟 需要手动引入组件
    // Object.keys(allGloablComponent).forEach((key: string) => {
    //   //注册为全局组件
    //   app.component(key, components[key])
    // })
  },
}
